package beans;

import java.util.ArrayList;
import java.util.List;

import javax.faces.context.FacesContext;

import beans.dao.UsuarioDAO;

public class UsuarioManager {
	private List<Usuario> usuarios;
	
	public UsuarioManager(){
		usuarios = new ArrayList<Usuario>();
	}

	
	public List<Usuario> getUsuarios() {
		UsuarioDAO dao = new UsuarioDAO();
		dao.beginTransaction();
		usuarios =  dao.getUsuarios();
		
		Usuario admin = (Usuario) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("usuario");
		if(admin != null){
			Usuario user = null;
			for(Usuario u: usuarios){
				if(u.getEmail().equals(admin.getEmail()))
					user = u;
			}
			if(user != null)
				usuarios.remove(user);
		}
		dao.commit();		
		return usuarios;
	}

	public void setUsuarios(List<Usuario> usuarios) {
		this.usuarios = usuarios;
	}
	
	public String ativar(Usuario u){
		UsuarioDAO dao = new UsuarioDAO();
		dao.beginTransaction();
		Usuario usuario = dao.retrieve(u.getEmail());
		usuario.setAtivo(true);
		dao.saveAndUpdate(usuario);
		dao.commit();
		return "ativo";
	}
	
	public String desativar(Usuario u){
		UsuarioDAO dao = new UsuarioDAO();
		dao.beginTransaction();
		Usuario usuario = dao.retrieve(u.getEmail());
		usuario.setAtivo(false);
		dao.saveAndUpdate(usuario);
		dao.commit();
		return "desativo";
	}
	
	public String excluir(Usuario u){
		UsuarioDAO dao = new UsuarioDAO();
		dao.beginTransaction();
		Usuario usuario = dao.retrieve(u.getEmail());
		usuario.setAtivo(false);
		try {
			dao.delete(usuario);
		} catch (Exception e) {
			e.printStackTrace();
		}
		dao.commit();
		return "excluido";
	}
	

}
